com.cete.dynamicpdf.xmp
Class PdfUASchema



Example: This example demonstrates the elements needed to specify a document as PDF/UA compatible.

import com.cete.dynamicpdf.*;
import com.cete.dynamicpdf.pageelements.Label;
import com.cete.dynamicpdf.pageelements.forms.TextField;
import com.cete.dynamicpdf.text.OpenTypeFont;
import com.cete.dynamicpdf.xmp.DublinCoreSchema;
import com.cete.dynamicpdf.xmp.PdfUASchema;
import com.cete.dynamicpdf.xmp.XmpMetadata;
 
public class MyClass{
       public static void main(String args[]){
 
 	    // Create a PDF Document
        Document document = new Document();
        
        // Set the TagOptions to document
        TagOptions Tag = new TagOptions();
        document.setTag(Tag);
        
        // Create StructureElement objects and set Order etc.
        StructureElement structureDocument = new StructureElement(TagType.getDocument());
        StructureElement structureHeading = new StructureElement(TagType.getHeading());
        StructureElement structureForm = new StructureElement(TagType.getForm());
        structureHeading.setParent(structureDocument);
        structureForm.setParent(structureDocument);

        // Create AttributeObject objects with tag order and parents.
        AttributeObject attrObjLayout = new AttributeObject(AttributeOwner.LAYOUT);
        attrObjLayout.setPlacement(Placement.BLOCK);
        structureForm.getAttributeLists().add(attrObjLayout);

        StructureElement structureForm2 = new StructureElement(TagType.getForm());
        structureForm2.setParent(structureDocument);
        structureForm2.getAttributeLists().add(attrObjLayout);

        StructureElement structureParagraph = new StructureElement(TagType.getParagraph());
        structureParagraph.setParent(structureDocument);
        StructureElement structureParagraph2 = new StructureElement(TagType.getParagraph());
        structureParagraph2.setParent(structureDocument);

        // Set Document Language
        document.setLanguage("en-us");
        document.getViewerPreferences().setDisplayDocTitle(true);
        
        // Create a Page
        Page page = new Page();
        
        // Create a Label and set Tag
        Label lblEnterName = new Label("EnterName:", 0, 100, 100, 50);
        lblEnterName.setTag(structureParagraph);
        Label lblAge = new Label("Age:", 0, 200, 100, 50);
        lblAge.setTag(structureParagraph2);
        
        // Create a TextField and set Tag
        TextField txtField1 = new TextField("txt1", 100, 100, 100, 50);
        TextField txtField2 = new TextField("txt2", 100, 200, 100, 50);
        txtField1.setTag(structureForm);
        txtField2.setTag(structureForm2);

        // Create an OpenTypeFont object with Embed option and ToolTip
        OpenTypeFont font = new OpenTypeFont("times.ttf");
        font.setEmbed(true);
        font.setSubset(false);
        lblEnterName.setFont(font);
        lblAge.setFont(font);
        txtField1.setFont(font);
        txtField1.setToolTip("Name");
        txtField2.setFont(font);
        txtField2.setToolTip("age");
        
        // Add the Elements to the Page
        page.getElements().add(lblEnterName);
        page.getElements().add(txtField1);
        page.getElements().add(lblAge);
        page.getElements().add(txtField2);
        
        // Add Page to the Document
        document.getPages().add(page);
        
        // Create an Xmp Metadata
        XmpMetadata xmp = new XmpMetadata();

        // Create a PdfUASchema and add to XMP matadata
        PdfUASchema customSchema = new PdfUASchema();
        xmp.addSchema(customSchema);

        // Create DublinCoreSchema and set properties
        DublinCoreSchema dc = xmp.getDublinCore();
        dc.getTitle().addLang("en-us", "XMP");
        dc.getTitle().setDefault("Title Text");
        
        // Adding the XmpMatadata to the document
        document.setXmpMetadata(xmp);
        
        // Save the PDF document
        document.draw("[outputPath]/output.pdf");
       }
 }